package cn.itcast.web.controller.dept;

import cn.itcast.domain.system.Module;
import cn.itcast.service.system.ModuleService;
import cn.itcast.web.controller.BaseController;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/system/module")
public class ModeleController extends BaseController {
@Autowired
private ModuleService moduleService;

    @RequestMapping("list")
    public String list(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "4") int pageSize){

        PageInfo<Module>pageInfo =moduleService.findByPage(pageNum,pageSize);
        request.setAttribute("pageInfo",pageInfo);
        return "system/module/module-list";
    }
    @RequestMapping("/toAdd")
    public String toAdd(){
        //下拉框数据据返回来
       List<Module>list= moduleService.finAll();
       request.setAttribute("menus",list);
        return "system/module/module-add";
    }

    /**
     * 保存添加的数据和修改的数据
     * 功能入口：system/module/module-add
     * 请求参数：Module module
     * 请求地址： /system/module/edit.do
     * 响应地址：module-list.jsp
     */

    @RequestMapping("edit")
    public String edit(Module module){
        if (StringUtils.isEmpty(module.getId())){
            //id为空则为添加方法
            moduleService.add(module);
        }else {
            moduleService.update(module);
        }
        return "redirect:/system/module/list";
    }


    /**
     * 修改数据的回显
     * 请求地址：/system/module/toUpdate.do
     * 请求参数：id
     * 功能入口：/system/module/list
     * 响应地址：module-update.jsp
     */

    @RequestMapping("toUpdate")
    public String toUpdate(String id){

        //下拉框
        List<Module> moduleList = moduleService.finAll();
        //回显数据
        Module modules= moduleService.findById(id);
        request.setAttribute("menus",moduleList);
        request.setAttribute("module",modules);


        return "system/module/module-update";
    }


    /**
     *  功能入口：/system/module/list
     *  请求参数：id
     *  请求地址： /system/module/delete.do
     *  返回地址：/system/module/list
     */

    @RequestMapping("delete")
    @ResponseBody
    public Map<String, Object> delete(String id){
        HashMap<String, Object> result = new HashMap<>();

        boolean flag= moduleService.delete(id);
        if (flag){
            result.put("message","1");
        }else {
            result.put("message","0");
        }

        return result;
    }
}
